home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PPC1B3AA.ZIP / PAGER.PPS < prev    next >
Text File  |  1996-08-08  |  43KB  |  1,673 lines

  1. ;----------------------------------------------------------------------------
  2. ; The Lemming Pager Example, Copyright(C) 1996, The AEGiS Corporation
  3. ;-----------------------------------------------------------PowerPPL v3.0ß---
  4. ; File           : PAGER.PPS
  5. ; Original by    : LONE RUNNER on 10/30/1995 at  2:31:37
  6. ; Last update by : LONE RUNNER on 07/29/1996 at 14:58:33
  7. ;----------------------------------------------------------------------------
  8. #ppe
  9. #libpath ..\..\lib
  10. #use nameisin
  11.  
  12. Declare Procedure LemWalkStep(Int stepNum, Int Side, Int x, Int y)
  13. Declare Procedure LemStopStep(Int stepNum, Int x, Int y)
  14. Declare Procedure LemHeadStep(Int stepNum, Int x, Int y)
  15. Declare Procedure LemFallStep(Int stepNum, Int x, Int y)
  16. Declare Procedure Num(Int N, Int x, Int y)
  17. Declare Function Menu(String PageName, Int Firstline, Int FirstX, Int LastX, Int nLines, Int Def, Int Special) Integer
  18. Declare Procedure DispSel(Integer Seln)
  19. Declare Procedure EraseSel(Integer Seln)
  20. Declare Procedure EraseCursor()
  21. Declare Procedure DrawLemArm(Int Sel)
  22. Declare Procedure EndProcedure(string stuff)
  23. Declare procedure DrawFailed()
  24. Declare Procedure DrawSleeping()
  25. Declare procedure Flash()
  26. Declare procedure FlashOff()
  27. Declare procedure Flash2()
  28. Declare Function AskPwd() Boolean
  29. Declare Function InputLine(Integer Col, Integer Row, Integer SLen, String Def, String Chars, Boolean Up, Boolean Hide) String
  30. Declare Procedure DispBackgrnd()
  31. Declare Procedure DispBackgrnd2()
  32. ;----------------------------------------------------------------------------
  33.  
  34. Int a, b, x, y, c, s, n, d, scnt, stepcnt, h
  35. Float cnt
  36. Int Decal
  37. Boolean PageFailed
  38. Int MenuFirstLine
  39. String k
  40. String BakLightBar
  41. Int LbFirstX, LbLastX
  42. Boolean SoundOn
  43. String Temp, Temp2
  44. Time T_Beg, T_End
  45. Boolean NoisyTime
  46. Int FlashMethod
  47. String Password
  48. Integer InputLineControl
  49. Integer SendBeep, SendBeepEmerg
  50. Integer DelayValue
  51. String Bk(5)
  52. String Reason
  53. Boolean WriteMsg
  54. Boolean PageSuccess
  55. ;----------------------------------------------------------------------------
  56. Begin
  57.  
  58. PageOn
  59. PageSuccess=False
  60.  
  61. Cls
  62. StartDisp FNS
  63.  
  64. y = 17
  65. a = 1
  66. c = 13
  67. s = -1
  68. n = 10
  69. cnt = 0
  70. scnt = 0
  71. stepcnt = 0
  72. h = 1
  73. decal = 23
  74.  
  75. ;LemStopStep(0, 1, 18)
  76. ;LemStopStep(0, 68, 18)
  77.  
  78. Password = ReadLine(PPEpath()+"PAGER.CFG",1)
  79. FlashMethod = ToInt(ReadLine(PPEpath()+"PAGER.CFG",10))
  80. SendBeep = ToBoolean(ReadLine(PPEpath()+"PAGER.CFG",11))
  81. SendBeepEmerg = ToBoolean(ReadLine(PPEpath()+"PAGER.CFG",12))
  82. DelayValue = ToInt(ReadLine(PPEpath()+"PAGER.CFG",13))
  83. if (ReadLine(PPEpath()+"PAGER.CFG",14) == "Y") WriteMsg = True
  84. DispBackgrnd()
  85. LemWalkStep(a, s, c, y)
  86.  
  87. Bk(0) = Scrtext(20, 9, 40, True)
  88. Bk(1) = Scrtext(20, 10, 40, True)
  89. Bk(2) = Scrtext(20, 11, 40, True)
  90. Bk(3) = Scrtext(20, 12, 40, True)
  91. Bk(4) = Scrtext(20, 13, 40, True)
  92. Bk(5) = Scrtext(20, 14, 40, True)
  93. AnsiPos 20,9
  94. Print "@X0F█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
  95. AnsiPos 20,10
  96. Print "@X0F█       Your reason for paging ?       █"
  97. AnsiPos 20,11
  98. Print "@X0F█                                      █"
  99. AnsiPos 20,12
  100. Print "@X0F█ [..................................] █"
  101. AnsiPos 20,13
  102. Print "@X0F█                                      █"
  103. AnsiPos 20,14
  104. Print "@X0F█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
  105.  
  106. Reason = InputLine(23, 12, 34, "", Mask_ascii(), True, False)
  107.  
  108. If (Reason == "") Then
  109.     Cls
  110.     End
  111. Endif
  112.  
  113. AnsiPos 20,9
  114. Print Bk(0)
  115. AnsiPos 20,10
  116. Print Bk(1)
  117. AnsiPos 20,11
  118. Print Bk(2)
  119. AnsiPos 20,12
  120. Print Bk(3)
  121. AnsiPos 20,13
  122. Print Bk(4)
  123. AnsiPos 20,14
  124. Print Bk(5)
  125.  
  126. While (GetToken() <> "") Do
  127. EndWhile
  128.  
  129. Temp = ReadLine(PPEpath()+"PAGER.CFG",9)
  130. Tokenize Temp
  131.  
  132. NoisyTime = True
  133.  
  134. While (TokCount() > 0) do
  135.  
  136.     Temp2 = GetToken()
  137.     
  138.     T_Beg = ToTime(Left(Temp2,5))
  139.     T_End = ToTime(Right(Temp2,5))
  140.     
  141.     If ((Time() > T_Beg) & (Time() < T_End)) NoisyTime = False
  142.     
  143. Endwhile
  144.  
  145. If (NameIsIn("PAGER.SIL")) NoisyTime = False
  146.  
  147. SoundOn = NoisyTime
  148.  
  149. While (GetToken() <> "") Do
  150. EndWhile
  151.  
  152. Temp = ReadLine(PPEpath()+"PAGER.CFG",2+Dow(Date()))
  153. Tokenize Temp
  154.  
  155. While (TokCount() > 0) do
  156.  
  157.     Temp2 = GetToken()
  158.     
  159.     T_Beg = ToTime(Left(Temp2,5))
  160.     T_End = ToTime(Right(Temp2,5))
  161.     
  162.     If ((Time() > T_Beg) & (Time() < T_End)) Goto PageIsOn
  163.     
  164. Endwhile
  165. Goto PageIsOff
  166. :PageIsOn
  167. If (NameIsIn("PAGER.NOT")) Goto PageIsOff
  168.  
  169. AnsiPos 40-Len(Reason)/2,23
  170. SPrint Reason
  171. While (1) Do
  172.     If (PageFailed) Goto Failed
  173.     inc stepcnt
  174.     Inc a
  175.     Inc b
  176.     if (a = 9 ) a = 1
  177.     if (b = 17 ) b = 1
  178.     If ((c == 63 && s == 1) || (c == 13 && s == -1)) Then
  179.         If (s == 1) Then
  180.             s = -1
  181.         Else
  182.             s = 1
  183.         Endif
  184.     Else
  185.         If (N > 0) c = c + s
  186.     Endif
  187.     If (N == 0) Then
  188.         d = c
  189.         If (s == -1) Dec d
  190.         Num(0, d, 14)
  191.     Endif
  192.     If (N <= 0) Then
  193.         LemHeadStep(h, c, y)
  194.         Inc h
  195.     Else
  196.         LemWalkStep(a, s, c, y)
  197.     Endif
  198.     If (stepcnt > 0) Then ; 99
  199.         cnt = cnt + 1.035
  200.         d = c
  201.         If (s == -1) Dec d
  202.         Num(n, d, 14)
  203.         if (cnt >= 13*(11-n)) Dec n
  204.     Endif
  205.     Inc scnt
  206.     While (Outbytes() > 0) Do
  207.     Endwhile
  208.     If (ToReal(scnt) /3 = ToInt(scnt)/3) Then
  209.         If (SoundOn) Then
  210.             Sound 400
  211.         Else
  212.             Flash()
  213.         Endif
  214.         Delay DelayValue
  215.         If (SendBeep) MPrint ""
  216.     Else
  217.         If (SoundOn) Then
  218.             Sound 0
  219.         Else
  220.             FlashOff()
  221.         Endif
  222.         Delay DelayValue
  223.     Endif
  224.     k = MInkey()
  225.     If (k = Chr(27)) Break
  226.     k = Upper(Kinkey())
  227.     If (k = Chr(27)) Break
  228.     If (k = "S") Then
  229.         SoundOn = !SoundOn
  230.         If (!SoundOn) Sound 0
  231.     Endif
  232.     if (k = " ") Then
  233.         PageOff
  234.         Cls
  235.         PageSuccess=True
  236.         FlashOff()
  237.         Sound 0
  238.         Chat
  239.         Endprocedure("")
  240.     Endif
  241. Endwhile
  242.  
  243. FlashOff()
  244. Sound 0
  245. Endprocedure("")
  246.  
  247. :Failed
  248. FlashOff()
  249. Sound 0
  250. a = Menu("FAILED", 9, 23, 50, 3, 1, 1)
  251. if (a = 1 || a == 0) Endprocedure("")
  252. if (a = 2) Endprocedure("C"+Chr(13))
  253.  
  254. :Emergency
  255. FlashOff()
  256. Sound 0
  257. DispBackgrnd2()
  258. ;LemStopStep(0, 1, 5)
  259. stepcnt=0
  260. scnt = 0
  261. b = 0
  262. s = -1
  263. c = 50
  264. y = 5
  265. h=0
  266. PageFailed = False
  267. SoundOn = NoisyTime
  268.  
  269. LemStopStep(b, 1, 5)
  270. LemWalkStep(1, s, c, y)
  271. If (!AskPwd()) Goto Failed
  272.  
  273. AnsiPos 40-Len(Reason)/2,23
  274. SPrint Reason
  275. While (1) Do
  276.     If (PageFailed) Goto Failed
  277.     inc stepcnt
  278.     LemStopStep(b, 1, 5)
  279.     inc a
  280.     inc b
  281.     if (a = 9 ) a = 1
  282.     if (b = 17 ) b = 1
  283.  
  284.     scnt = scnt+1
  285.     If (ToReal(scnt) /3 = ToInt(scnt)/3) Then
  286.         If (SoundOn) Then
  287.             Sound 2000
  288.         Else
  289.             Flash2()
  290.         Endif
  291.         If (SendBeepEmerg) MPrint ""
  292.         Delay DelayValue
  293.     Else
  294.         If (SoundOn) Then
  295.             Sound 0
  296.         Else
  297.             FlashOff()
  298.         Endif
  299.         Delay DelayValue
  300.     Endif
  301.  
  302.     if (stepcnt < 85) Then
  303.         LemWalkStep(a, s, c, y)
  304.         c = c + s
  305.     Else
  306.         if (stepcnt = 85) inc c
  307.         LemFallStep(h, c, y)
  308.         Inc h
  309.     Endif
  310.     if (c == 13 && s == -1)    s = 1
  311.     k = MInkey()
  312.     If (k = Chr(27)) Break
  313.     k = Upper(Kinkey())
  314.     If (k = Chr(27)) Break
  315.     If (k = "S") Then
  316.         SoundOn = !SoundOn
  317.         If (!SoundOn) Sound 0
  318.     Endif
  319.     if (k = " ") Then
  320.         PageOff
  321.         Cls
  322.         PageSuccess=True
  323.         FlashOff()
  324.         Sound 0
  325.         Chat
  326.         Endprocedure("")
  327.     Endif
  328. Endwhile
  329. FlashOff()
  330. Sound 0
  331. Endprocedure("")
  332.  
  333. :PageIsOff
  334. FlashOff()
  335. Sound 0
  336. a = Menu("SLEEPING", 10, 16, 44, 3, 1, 1)
  337. if (a = 1 || a == 0) Endprocedure("")
  338. if (a = 2) Endprocedure("C"+Chr(13))
  339. Goto Emergency
  340.  
  341. FlashOff()
  342. Sound 0
  343. Endprocedure("")
  344.  
  345. ;----------------------------------------------------------------------------
  346. Procedure LemWalkStep(int stepNum, int side, int x, int y)
  347.  
  348. If (Side == 1) Then
  349.  
  350.     Select Case StepNum
  351.     
  352.         Case 1
  353.     
  354.             AnsiPos x, y
  355.             Print " @X02▄█▄▀  "
  356.             AnsiPos x, y+1
  357.             Print " @X02▀@X2F▄@X0F█▄  "
  358.             AnsiPos x, y+2
  359.             Print " @X0F @X1F▀▄@X07   "
  360.             AnsiPos x, y+3
  361.             Print " @X0F @X01█@X1F▀@X0F █ "
  362.             AnsiPos x, y+4
  363.             Print " @X1F▄▄@X0F ▀  "
  364.     
  365.         Case 2
  366.         
  367.             AnsiPos x, y
  368.             Print " @X0F @X02▄ ▄  "
  369.             AnsiPos x, y+1
  370.             Print " @X02 ▀█@X2F▄@X07  "
  371.             AnsiPos x, y+2
  372.             Print " @X0F  @X1F▀@X0F█▀ "
  373.             AnsiPos x, y+3
  374.             Print " @X0F  @X01█@X1F▀@X0F▄ "
  375.             AnsiPos x, y+4
  376.             Print " @X0F▄@X1F▄@X01▀▀@X1F▄@X0F▄"
  377.     
  378.         Case 3
  379.         
  380.             AnsiPos x, y
  381.             Print " @X0F  @X02▄▄  "
  382.             AnsiPos x, y+1
  383.             Print " @X02 █@X2F▄█▄@X07 "
  384.             AnsiPos x, y+2
  385.             Print " @X0F  █@X01█  "
  386.             AnsiPos x, y+3
  387.             Print " @X01  █@X1F▀@X07  "
  388.             AnsiPos x, y+4
  389.             Print " @X0F█@X01▀▀@X1F▄▄@X07 "
  390.     
  391.         Case 4
  392.         
  393.             AnsiPos x, y
  394.             Print " @X02▄▄▄▄  "
  395.             AnsiPos x, y+1
  396.             Print " @X02▀@X2F▄@X0F█▄  "
  397.             AnsiPos x, y+2
  398.             Print " @X0F █@X01█   "
  399.             AnsiPos x, y+3
  400.             Print " @X01 @X1F▀@X01█   "
  401.             AnsiPos x, y+4
  402.             Print " @X0F▀@X1F▄▄@X07   "
  403.         
  404.         Case 5
  405.         
  406.             AnsiPos x, y
  407.             Print " @X02▄█▄▀  "
  408.             AnsiPos x, y+1
  409.             Print " @X02▀@X2F▄@X0F█▄  "
  410.             AnsiPos x, y+2
  411.             Print " @X0F▄@X1F▀@X01█   "
  412.             AnsiPos x, y+3
  413.             Print " @X0F▀@X01██ @X0F█ "
  414.             AnsiPos x, y+4
  415.             Print " @X1F▄▄@X0F ▀  "
  416.             
  417.         Case 6
  418.         
  419.             AnsiPos x, y
  420.             Print " @X0F @X02▄ ▄  "
  421.             AnsiPos x, y+1
  422.             Print " @X02 ▀█@X2F▄@X07  "
  423.             AnsiPos x, y+2
  424.             Print " @X0F ▄█@X1F▀@X0F▀ "
  425.             AnsiPos x, y+3
  426.             Print " @X0F▄█@X01██▄ "
  427.             AnsiPos x, y+4
  428.             Print " @X0F▄@X1F▄@X01▀▀@X1F▄@X0F▄"
  429.     
  430.         Case 7
  431.     
  432.             AnsiPos x, y
  433.             Print " @X0F  @X02▄▄  "
  434.             AnsiPos x, y+1
  435.             Print " @X02 █@X2F▄@X0F█@X2F▄@X07 "
  436.             AnsiPos x, y+2
  437.             Print " @X0F  █@X01█  "
  438.             AnsiPos x, y+3
  439.             Print " @X01 @X0F▀@X01██  "
  440.             AnsiPos x, y+4
  441.             Print " @X0F█@X01▀▀@X1F▄▄@X07 "
  442.     
  443.     Case 8
  444.     
  445.             AnsiPos x, y
  446.             Print " @X0F @X02▄▄▄▄ "
  447.             AnsiPos x, y+1
  448.             Print " @X02 █@X2F▄@X0F█▄ "
  449.             AnsiPos x, y+2
  450.             Print " @X0F  @X1F▀▄@X07  "
  451.             AnsiPos x, y+3
  452.             Print " @X0F  @X1F▀@X01█  "
  453.             AnsiPos x, y+4
  454.             Print " @X01 @X0F▀@X1F▄▄@X07  "
  455.     
  456.     End Select
  457.     
  458. Else
  459.  
  460.     Select Case StepNum
  461.     
  462.         Case 1
  463.     
  464.             AnsiPos x, y
  465.             Print "@X0F @X02▀▄█▄  "
  466.             AnsiPos x, y+1
  467.             Print "@X02 @X0F▄█@X2F▄@X02▀  "
  468.             AnsiPos x, y+2
  469.             Print "@X02  @X1F▄▀@X07   "
  470.             AnsiPos x, y+3
  471.             Print "@X0F█ @X1F▀@X01█   "
  472.             AnsiPos x, y+4
  473.             Print "@X01 @X0F▀ @X1F▄▄@X07  "
  474.     
  475.         Case 2
  476.         
  477.             AnsiPos x, y
  478.             Print "@X0F  @X02▄ ▄  "
  479.             AnsiPos x, y+1
  480.             Print "@X02  @X2F▄@X02█▀  "
  481.             AnsiPos x, y+2
  482.             Print "@X02 @X0F▀█@X1F▀@X07   "
  483.             AnsiPos x, y+3
  484.             Print "@X0F ▄@X1F▀@X01█   "
  485.             AnsiPos x, y+4
  486.             Print "@X0F▄@X1F▄@X01▀▀@X1F▄@X0F▄ "
  487.  
  488.         Case 3
  489.         
  490.             AnsiPos x, y
  491.             Print "@X0F @X02▄▄    "
  492.             AnsiPos x, y+1
  493.             Print "@X2F▄█▄@X02█   "
  494.             AnsiPos x, y+2
  495.             Print "@X02 @X01█@X0F█    "
  496.             AnsiPos x, y+3
  497.             Print "@X0F @X1F▀@X01█    "
  498.             AnsiPos x, y+4
  499.             Print "@X1F▄▄@X01▀▀@X0F█  "
  500.  
  501.     
  502.         Case 4
  503.         
  504.             AnsiPos x, y
  505.             Print "@X02▄▄▄▄   "
  506.             AnsiPos x, y+1
  507.             Print "@X0F▄█@X2F▄@X02▀   "
  508.             AnsiPos x, y+2
  509.             Print "@X02 @X01█@X0F█    "
  510.             AnsiPos x, y+3
  511.             Print "@X0F @X01█@X1F▀@X07    "
  512.             AnsiPos x, y+4
  513.             Print "@X01 @X1F▄▄@X0F▀   "
  514.         
  515.         Case 5
  516.         
  517.             AnsiPos x, y
  518.             Print "@X07 @X02▀▄█▄  "
  519.             AnsiPos x, y+1
  520.             Print "@X02 @X0F▄█@X2F▄@X02▀  "
  521.             AnsiPos x, y+2
  522.             Print "@X02  @X01█@X1F▀@X0F▄  "
  523.             AnsiPos x, y+3
  524.             Print "@X0F█ @X01██@X0F▀  "
  525.             AnsiPos x, y+4
  526.             Print "@X0F ▀ @X1F▄▄@X07  "
  527.             
  528.         Case 6
  529.         
  530.             AnsiPos x, y
  531.             Print "@X0F  @X02▄ ▄  "
  532.             AnsiPos x, y+1
  533.             Print "@X02  @X2F▄@X02█▀  "
  534.             AnsiPos x, y+2
  535.             Print "@X02 @X0F▀@X1F▀@X0F█▄  "
  536.             AnsiPos x, y+3
  537.             Print "@X0F @X01▄██@X0F█▄ "
  538.             AnsiPos x, y+4
  539.             Print "@X0F▄@X1F▄@X01▀▀@X1F▄@X0F▄ "
  540.     
  541.         Case 7
  542.     
  543.             AnsiPos x, y
  544.             Print "@X0F @X02▄▄    "
  545.             AnsiPos x, y+1
  546.             Print "@X2F▄@X0F█@X2F▄@X02█   "
  547.             AnsiPos x, y+2
  548.             Print "@X02 @X01█@X0F█    "
  549.             AnsiPos x, y+3
  550.             Print "@X0F @X01██@X0F▀   "
  551.             AnsiPos x, y+4
  552.             Print "@X1F▄▄@X01▀▀@X0F█  "
  553.     
  554.     Case 8
  555.     
  556.             AnsiPos x, y
  557.             Print "@X02▄▄▄▄   "
  558.             AnsiPos x, y+1
  559.             Print "@X0F▄█@X2F▄@X02█   "
  560.             AnsiPos x, y+2
  561.             Print "@X02 @X1F▄▀@X07    "
  562.             AnsiPos x, y+3
  563.             Print "@X0F @X01█@X1F▀@X07    "
  564.             AnsiPos x, y+4
  565.             Print "@X0F @X1F▄▄@X0F▀   "
  566.     
  567.     End Select
  568.     
  569. Endif
  570.  
  571. Endproc
  572.  
  573. ;----------------------------------------------------------------------------
  574. Procedure LemStopStep(int stepNum, int x, int y)
  575.  
  576. Select Case StepNum
  577.  
  578.     Case 0
  579.  
  580.         AnsiPos x, y
  581.         Print " @X0F     @X02▄▄    "
  582.         AnsiPos x, y+1
  583.         Print " @X02    ██@X2F▄▄@X07   "
  584.         AnsiPos x, y+2
  585.         Print " @X0F █▄▄▄@X1F▀▀@X0F▄▄▄█"
  586.         AnsiPos x, y+3
  587.         Print " @X0F    @X01▄██▄   "
  588.         AnsiPos x, y+4
  589.         Print " @X01   @X0F▄@X1F▄@X0F  @X1F▄@X0F▄  "
  590.  
  591.     Case 2
  592.  
  593.         AnsiPos x+5, y+1
  594.         Print "@X02█@X2F▄▄@X02█"
  595.         AnsiPos x+9, y+4
  596.         Print "@X0F▀"
  597.  
  598.     Case 4
  599.  
  600.         AnsiPos x+8, y
  601.         Print "@X02▄"
  602.         AnsiPos x+5, y+1
  603.         Print "@X2F▄▄▄@X02██"
  604.         AnsiPos x+9, y+4
  605.         Print "@X0F▄"
  606.  
  607.     Case 5
  608.  
  609.         AnsiPos x+8, y
  610.         Print "@X0F "
  611.         AnsiPos x+7, y+1
  612.         Print "@X02█"
  613.  
  614.     Case 6
  615.  
  616.         AnsiPos x+9, y+1
  617.         Print "@X02▄"
  618.         AnsiPos x+9, y+4
  619.         Print "@X0F▀"
  620.  
  621.     Case 7
  622.  
  623.         AnsiPos x+9, y+1
  624.         Print "@X0F "
  625.  
  626.      Case 8
  627.  
  628.         AnsiPos x+9, y+4
  629.         Print "@X0F▄"
  630.  
  631.     Case 10
  632.  
  633.         AnsiPos x+5, y+1
  634.         Print "@X02█@X2F▄▄@X02█"
  635.         AnsiPos x+9, y+4
  636.         Print "@X0F▀"
  637.  
  638.     Case 12
  639.  
  640.         AnsiPos x+7, y
  641.         Print "@X02▄"
  642.         AnsiPos x+4, y+1
  643.         Print "@X02██@X2F▄▄▄@X07"
  644.         AnsiPos x+9, y+4
  645.         Print "@X0F▄"
  646.  
  647.     Case 13
  648.  
  649.         AnsiPos x+5, y
  650.         Print "@X0F "
  651.         AnsiPos x+6, y+1
  652.         Print "@X02█"
  653.  
  654.     Case 14
  655.  
  656.         AnsiPos x+4, y+1
  657.         Print "@X02▄"
  658.         AnsiPos x+9, y+4
  659.         Print "@X0F▀"
  660.  
  661.     Case 15
  662.  
  663.         AnsiPos x+4, y+1
  664.         Print "@X0F "
  665.  
  666.     Case 16
  667.  
  668.         AnsiPos x+9, y+4
  669.         Print "@X0F▄"
  670.  
  671. End Select
  672.  
  673. Endproc
  674.  
  675. ;----------------------------------------------------------------------------
  676. Procedure Num(Int N, Int x, Int y)
  677.  
  678. Select Case N
  679.  
  680.     Case 10
  681.  
  682.         AnsiPos x-1, y
  683.         Print " @X0F█ █▀█ "
  684.         AnsiPos x-1, y+1
  685.         Print " @X0F█ █ █ "
  686.         AnsiPos x-1, y+2
  687.         Print " @X0F▀ ▀▀▀ "
  688.  
  689.     Case 9
  690.  
  691.         AnsiPos x-1, y
  692.         Print " @X0F  █▀█ "
  693.         AnsiPos x-1, y+1
  694.         Print " @X0F  ▀▀█ "
  695.         AnsiPos x-1, y+2
  696.         Print " @X0F  ▀▀▀ "
  697.  
  698.     Case 8
  699.  
  700.         AnsiPos x-1, y
  701.         Print " @X0F  █▀█ "
  702.         AnsiPos x-1, y+1
  703.         Print " @X0F  █▀█ "
  704.         AnsiPos x-1, y+2
  705.         Print " @X0F  ▀▀▀ "
  706.  
  707.     Case 7
  708.  
  709.         AnsiPos x-1, y
  710.         Print " @X0F  ▀▀█ "
  711.         AnsiPos x-1, y+1
  712.         Print " @X0F    █ "
  713.         AnsiPos x-1, y+2
  714.         Print " @X0F    ▀ "
  715.  
  716.     Case 6
  717.  
  718.         AnsiPos x-1, y
  719.         Print " @X0F  █▀▀ "
  720.         AnsiPos x-1, y+1
  721.         Print " @X0F  █▀█ "
  722.         AnsiPos x-1, y+2
  723.         Print " @X0F  ▀▀▀ "
  724.  
  725.     Case 5
  726.  
  727.         AnsiPos x-1, y
  728.         Print " @X0F  █▀▀ "
  729.         AnsiPos x-1, y+1
  730.         Print " @X0F  ▀▀█ "
  731.         AnsiPos x-1, y+2
  732.         Print " @X0F  ▀▀▀ "
  733.  
  734.     Case 4
  735.  
  736.         AnsiPos x-1, y
  737.         Print " @X0F  █   "
  738.         AnsiPos x-1, y+1
  739.         Print " @X0F  █▄█ "
  740.         AnsiPos x-1, y+2
  741.         Print " @X0F    ▀ "
  742.  
  743.     Case 3
  744.  
  745.         AnsiPos x-1, y
  746.         Print " @X0F  ▀▀█ "
  747.         AnsiPos x-1, y+1
  748.         Print " @X0F   ▀█ "
  749.         AnsiPos x-1, y+2
  750.         Print " @X0F  ▀▀▀ "
  751.  
  752.     Case 2
  753.  
  754.         AnsiPos x-1, y
  755.         Print " @X0F  ▀▀█ "
  756.         AnsiPos x-1, y+1
  757.         Print " @X0F  █▀▀ "
  758.         AnsiPos x-1, y+2
  759.         Print " @X0F  ▀▀▀ "
  760.  
  761.     Case 1
  762.  
  763.         AnsiPos x-1, y
  764.         Print " @X0F    █ "
  765.         AnsiPos x-1, y+1
  766.         Print " @X0F    █ "
  767.         AnsiPos x-1, y+2
  768.         Print " @X0F    ▀ "
  769.  
  770.     Case 0
  771.  
  772.         AnsiPos x-1, y
  773.         Print "       "
  774.         AnsiPos x-1, y+1
  775.         Print "       "
  776.         AnsiPos x-1, y+2
  777.         Print "       "
  778.  
  779. End Select
  780.  
  781. Endproc
  782.  
  783. ;----------------------------------------------------------------------------
  784. Procedure LemHeadStep(int stepNum, int x, int y)
  785.  
  786. Select Case StepNum
  787.  
  788.     Case 1, 40, 51, 55, 66
  789.  
  790.         AnsiPos x, y
  791.         Print "@X0F  @X02▄██▄  "
  792.         AnsiPos x, y+1
  793.         Print "@X02  ▀@X0F██@X02▀  "
  794.         AnsiPos x, y+2
  795.         Print "@X02  @X0F█@X01██@X0F█  "
  796.         AnsiPos x, y+3
  797.         Print "@X0F  ▀@X01██@X0F▀  "
  798.         AnsiPos x, y+4
  799.         Print "@X0F  ▄@X1F▄▄@X0F▄  "
  800.  
  801.     Case 2, 39, 52, 54
  802.  
  803.         AnsiPos x, y+2
  804.         Print "@X02 @X0F▄▀@X01██@X0F▀▄ "
  805.         AnsiPos x, y+3
  806.         Print "@X0F ▀ @X01██ @X0F▀ "
  807.  
  808.     Case 3, 38, 53
  809.  
  810.         AnsiPos x, y+2
  811.         Print "@X0F▄▀▀@X01██@X0F▀▀▄"
  812.         AnsiPos x, y+3
  813.         Print "@X0F   @X01██   "
  814.  
  815.     Case 4, 37
  816.  
  817.         AnsiPos x, y+1
  818.         Print "@X02  ▀@X0F██@X02▀  "
  819.         AnsiPos x, y+2
  820.         Print "@X0F▀▀▀@X01██@X0F▀▀▀"
  821.  
  822.     Case 5, 36
  823.  
  824.         AnsiPos x, y+1
  825.         Print "@X0F▀▄@X02▀@X0F██@X02▀@X0F▄▀"
  826.         AnsiPos x, y+2
  827.         Print "@X0F  ▀@X01██@X0F▀  "
  828.  
  829.     Case 6, 35
  830.  
  831.         AnsiPos x, y
  832.         Print "@X0F  @X02▄██▄  "
  833.         AnsiPos x, y+1
  834.         Print "@X02 @X0F█@X02▀@X0F██@X02▀@X0F█ "
  835.         AnsiPos x, y+2
  836.         Print "@X0F  ▀@X01██@X0F▀  "
  837.  
  838.     Case 7, 9, 25
  839.  
  840.         AnsiPos x, y
  841.         Print "        "
  842.         AnsiPos x, y+1
  843.         Print "@X0F ▄@X2F▀▄▄▀@X0F▄ "
  844.         AnsiPos x, y+2
  845.         Print "@X0F ▀@X2F▄@X1F▀▀@X2F▄@X0F▀ "
  846.         AnsiPos x, y+3
  847.         Print "@X0F   @X01██   "
  848.  
  849.     Case 8, 11, 13, 15
  850.  
  851.         AnsiPos x, y+1
  852.         Print "@X0F▄@X02▄@X2F▄▄▀@X0F▄  "
  853.         AnsiPos x, y+2
  854.         Print "@X0F▀@X2F▄@X1F▀▀▀@X0F█  "
  855.         AnsiPos x, y+3
  856.         Print "@X0F  @X01▀██   "
  857.  
  858.     Case 10, 12, 14
  859.  
  860.         AnsiPos x, y+1
  861.         Print "@X0F  ▄@X2F▀▄▄@X02▄@X0F▄"
  862.         AnsiPos x, y+2
  863.         Print "@X0F  █@X1F▀▀▀@X2F▄@X0F▀"
  864.         AnsiPos x, y+3
  865.         Print "@X0F   @X01██▀  "
  866.  
  867.     Case 50
  868.  
  869.         AnsiPos x, y-3
  870.         Print "@X0F   ▀▀█  "
  871.         AnsiPos x, y-2
  872.         Print "@X0F    ▀   "
  873.         AnsiPos x, y-1
  874.         Print "@X0F    ▀   "
  875.  
  876.     Case 56
  877.  
  878.         AnsiPos x, y-3
  879.         Print "        "
  880.         AnsiPos x, y-2
  881.         Print "        "
  882.         AnsiPos x, y-1
  883.         Print "        "
  884.         
  885.     Case 67
  886.     
  887.         AnsiPos x, y-1
  888.         Print "@X02  ▄██▄ "
  889.         AnsiPos x, y
  890.         Print "@X02  ▀@X0F██@X02▀ "
  891.         AnsiPos x, y+1
  892.         Print "@X02   @X0C│|  "
  893.         AnsiPos x, y+2
  894.         Print "@X0C  @X0F█@X01██@X0F█ "
  895.         AnsiPos x, y+3
  896.         Print "@X0F  ▀@X01██@X0F▀ "
  897.         AnsiPos x, y+4
  898.         Print "@X0F  ▄@X1F▄▄@X0F▄@X07 "
  899.  
  900.     Case 68
  901.     
  902.         AnsiPos x, y-3
  903.         Print "  @X02▄██▄ "
  904.         AnsiPos x, y-2
  905.         Print "  @X02▀@X0F██@X02▀ "
  906.         AnsiPos x, y-1
  907.         Print "  @X02 @X0C│|  "
  908.         AnsiPos x, y
  909.         Print "  @X0C ·.  "
  910.         AnsiPos x, y+1
  911.         Print "  @X0C |│  "
  912.  
  913.     Case 69
  914.     
  915.         AnsiPos x, y-8
  916.         Print "  @X02▄██▄ "
  917.         AnsiPos x, y-7
  918.         Print "  @X02▀@X0F██@X02▀ "
  919.         AnsiPos x, y-6
  920.         Print "  @X02 @X0C││  "
  921.         AnsiPos x, y-5
  922.         Print "  @X0C  |  "
  923.         AnsiPos x, y-4
  924.         Print "  @X0C  ·  "
  925.         AnsiPos x, y-3
  926.         Print "       "
  927.         AnsiPos x, y-2
  928.         Print "       "
  929.         AnsiPos x, y-1
  930.         Print "  @X0C  ·  "
  931.         AnsiPos x, y
  932.         Print "       "
  933.         AnsiPos x, y+1
  934.         Print "  @X0C_¬⌐_ "
  935.  
  936.     Case 70
  937.  
  938.         AnsiPos x, y-17
  939.         Print "  @X02▄██▄ "
  940.         AnsiPos x, y-16
  941.         Print "  @X02▀@X0F██@X02▀ "
  942.         AnsiPos x, y-15
  943.         Print "  @X02 @X0C│|  "
  944.         AnsiPos x, y-14
  945.         Print "  @X0C ││  "
  946.         AnsiPos x, y-13
  947.         Print "  @X0C |│  "
  948.         AnsiPos x, y-12
  949.         Print "  @X0C ·|  "
  950.         AnsiPos x, y-11
  951.         Print "  @X0C ·.  "
  952.         AnsiPos x, y-9
  953.         Print "  @X0C ·.  "
  954.         AnsiPos x, y-8
  955.         Print "       "
  956.         AnsiPos x, y-7
  957.         Print "  @X0C  .  "
  958.         AnsiPos x, y-6
  959.         Print "       "
  960.         AnsiPos x, y-5
  961.         Print "       "
  962.         AnsiPos x, y-4
  963.         Print "       "
  964.         AnsiPos x, y-3
  965.         Print "  @X0C  ·  "
  966.         AnsiPos x, y-1
  967.         Print "       "
  968.         AnsiPos x, y+1
  969.         Print "  @X0C____ "
  970.         AnsiPos x, y+2
  971.         Print "  @X0F█@X1C▀|@X0F█ "
  972.  
  973.     Case 71
  974.  
  975.         AnsiPos x, y-17
  976.         Print "       "
  977.         AnsiPos x, y-16
  978.         Print "       "
  979.         AnsiPos x, y-15
  980.         Print "       "
  981.         AnsiPos x, y-14
  982.         Print "       "
  983.         AnsiPos x, y-13
  984.         Print "       "
  985.         AnsiPos x, y-12
  986.         Print "       "
  987.         AnsiPos x, y-11
  988.         Print "       "
  989.         AnsiPos x, y-9
  990.         Print "       "
  991.         AnsiPos x, y-7
  992.         Print "       "
  993.         AnsiPos x, y-3
  994.         Print "       "
  995.         
  996.     Case 81
  997.     
  998.         AnsiPos x, y+1
  999.         Print "  @X0C  ____"
  1000.         AnsiPos x, y+2
  1001.         Print "  @X0C  @X0F█@X1C▀|@X0F█"
  1002.         AnsiPos x, y+3
  1003.         Print "  @X0F ▀@X01██@X0F▀ "
  1004.         AnsiPos x, y+4
  1005.         Print "  @X0F▀@X1F▄▄@X0F▄  "
  1006.         
  1007.     Case 83
  1008.     
  1009.         AnsiPos x, y+1
  1010.         Print "   @X07        "
  1011.         AnsiPos x, y+2
  1012.         Print "   @X0F   ▄▄@X0C°_ "
  1013.         AnsiPos x, y+3
  1014.         Print "   @X0F▄@X01▄@X1F▀@X01█@X1F▄@X0F▀@X0C|`"
  1015.         AnsiPos x, y+4
  1016.         Print "   @X0C @X0F▀@X1F▄@X07     "
  1017.         
  1018.     Case 84
  1019.  
  1020.         AnsiPos x, y+2
  1021.         Print "             "
  1022.         AnsiPos x, y+3
  1023.         Print "    @X0F▄        "
  1024.         AnsiPos x, y+4
  1025.         Print "    @X0F█@X01██@X1F▄▄@X0C,___@X07"
  1026.         
  1027.     Case 95
  1028.  
  1029.         AnsiPos x+decal, y-17
  1030.         Print "@X0C ·  "
  1031.         AnsiPos x+decal, y-16
  1032.         Print "@X0C .· "
  1033.         AnsiPos x+decal, y-15
  1034.         Print "@X0C |│ "
  1035.         AnsiPos x+decal, y-14
  1036.         Print "@X0C │| "
  1037.         AnsiPos x+decal, y-13
  1038.         Print "@X02▄@X0F██@X02▄"
  1039.         AnsiPos x+decal, y-12
  1040.         Print "@X02▀██▀"
  1041.  
  1042.     Case 96
  1043.  
  1044.         AnsiPos x+decal, y-17
  1045.         Print "    "
  1046.         AnsiPos x+decal, y-16
  1047.         Print "    "
  1048.         AnsiPos x+decal, y-15
  1049.         Print "    "
  1050.         AnsiPos x+decal, y-14
  1051.         Print "    "
  1052.         AnsiPos x+decal, y-13
  1053.         Print "    "
  1054.         AnsiPos x+decal, y-12
  1055.         Print "    "
  1056.         AnsiPos x+decal, y-11
  1057.         Print "@X0C ·  "
  1058.         AnsiPos x+decal, y-10
  1059.         Print "@X0C .· "
  1060.         AnsiPos x+decal, y-9
  1061.         Print "@X0C |│ "
  1062.         AnsiPos x+decal, y-8
  1063.         Print "@X0C │| "
  1064.         AnsiPos x+decal, y-7
  1065.         Print "@X02▄@X0F██@X02▄"
  1066.         AnsiPos x+decal, y-6
  1067.         Print "@X02▀██▀"
  1068.  
  1069.     Case 97
  1070.  
  1071.         AnsiPos x+decal, y-11
  1072.         Print "    "
  1073.         AnsiPos x+decal, y-10
  1074.         Print "    "
  1075.         AnsiPos x+decal, y-9
  1076.         Print "    "
  1077.         AnsiPos x+decal, y-8
  1078.         Print "    "
  1079.         AnsiPos x+decal, y-7
  1080.         Print "    "
  1081.         AnsiPos x+decal, y-6
  1082.         Print "    "
  1083.         AnsiPos x+decal, y-5
  1084.         Print "@X0C ·  "
  1085.         AnsiPos x+decal, y-4
  1086.         Print "@X0C .· "
  1087.         AnsiPos x+decal, y-3
  1088.         Print "@X0C |│ "
  1089.         AnsiPos x+decal, y-2
  1090.         Print "@X0C │| "
  1091.         AnsiPos x+decal, y-1
  1092.         Print "@X02▄@X0F██@X02▄"
  1093.         AnsiPos x+decal, y
  1094.         Print "@X02▀██▀"
  1095.  
  1096.     Case 98
  1097.  
  1098.         AnsiPos x+decal, y-5
  1099.         Print "    "
  1100.         AnsiPos x+decal, y-4
  1101.         Print "    "
  1102.         AnsiPos x+decal, y-3
  1103.         Print "    "
  1104.         AnsiPos x+decal, y-2
  1105.         Print "    "
  1106.         AnsiPos x+decal, y-1
  1107.         Print "@X0C ·  "
  1108.         AnsiPos x+decal, y
  1109.         Print "@X0C .· "
  1110.         AnsiPos x+decal, y+1
  1111.         Print "@X0C |│ "
  1112.         AnsiPos x+decal, y+2
  1113.         Print "@X0C │| "
  1114.         AnsiPos x+decal-3, y+3
  1115.         Print "@X0C°` @X02▄@X0F██@X02▄ @X0C,"
  1116.         AnsiPos x+decal-3, y+4
  1117.         Print "@X0C__\@X02▀██▀@X0C/__"
  1118.  
  1119.     Case 99
  1120.  
  1121.         AnsiPos x+decal, y-1
  1122.         Print "    "
  1123.         AnsiPos x+decal, y
  1124.         Print "    "
  1125.         AnsiPos x+decal, y+1
  1126.         Print "    "
  1127.         AnsiPos x+decal, y+2
  1128.         Print "    "
  1129.         AnsiPos x+decal-3, y+3
  1130.         Print "          "
  1131.         AnsiPos x+decal+1, y+2
  1132.         Print "@X02▄@X0F██@X02▄"
  1133.         AnsiPos x+decal+1, y+3
  1134.         Print "@X02▀██▀@X07"
  1135.         AnsiPos x+decal-3, y+4
  1136.         Print "@X0C__________"
  1137.         AnsiPos x+decal+2, y+1
  1138.         Print  "@X0C_,"
  1139.  
  1140.     Case 100
  1141.  
  1142.         AnsiPos x+decal+1, y+2
  1143.         Print "    "
  1144.         AnsiPos x+decal+1, y+3
  1145.         Print "    "
  1146.         AnsiPos x+decal+2, y+1
  1147.         Print  "  "
  1148.         AnsiPos x+decal+2, y+1
  1149.         Print "@X02▄█@X2F▄@X0F▄@X0C,"
  1150.         AnsiPos x+decal+2, y+2
  1151.         Print "@X02▀█@X2F▀@X0F▀@X0C`"
  1152.  
  1153.     Case 101
  1154.  
  1155.         AnsiPos x+decal+2, y+1
  1156.         Print "     "
  1157.         AnsiPos x+decal+2, y+2
  1158.         Print "     "
  1159.         AnsiPos x+decal+3, y+2
  1160.         Print "@X02▄█@X2F▄@X0F▄@X0C,"
  1161.         AnsiPos x+decal+3, y+3
  1162.         Print "@X02▀█@X2F▀@X0F▀@X0C`"
  1163.  
  1164.     Case 102
  1165.  
  1166.         AnsiPos x+decal+3, y+2
  1167.         Print "     "
  1168.         AnsiPos x+decal+3, y+3
  1169.         Print "     "
  1170.         AnsiPos x+decal+4, y+3
  1171.         Print  "@X02▄█@X2F▄@X0F▄@X0C,"
  1172.         AnsiPos x+decal+3, y+4
  1173.         Print "@X0C_@X02▀█@X2F▀@X0F▀@X0C`,__"
  1174.     
  1175.     Case 104
  1176.         
  1177.         PageFailed = True
  1178.  
  1179. End Select    
  1180.  
  1181. Endproc
  1182.  
  1183.  
  1184. ;----------------------------------------------------------------------------
  1185. Function Menu(String PageName, Int Firstline, Int FirstX, Int LastX, Int nLines, Int Def, Int Special) Integer
  1186.  
  1187. Int Sel
  1188. Sel = Def
  1189.  
  1190. nLines = nLines*2
  1191.  
  1192. lbFirstX = FirstX
  1193. lbLastX = LastX
  1194.  
  1195. MenuFirstLine = FirstLine
  1196.  
  1197. Color @X0F
  1198. select Case PageName
  1199.     Case "FAILED"
  1200.         DrawFailed()
  1201.     Case "SLEEPING"
  1202.         DrawSleeping()
  1203. End select
  1204.  
  1205. DispSel(Sel)
  1206.  
  1207. While (1) Do
  1208.     k = Inkey()
  1209.     If (k <> "") Then
  1210.         Select case k
  1211.             Case "DOWN", "2","5"
  1212.                 EraseSel(Sel)
  1213.                 Sel = Sel + 2
  1214.                 If (Sel = nLines + 1) Sel = 1
  1215.                 If (Special = 1 && PageName == "FAILED") DrawLemArm(Sel)
  1216.                 DispSel(Sel)
  1217.             Case "UP","8"
  1218.                 EraseSel(Sel)
  1219.                 Sel = Sel - 2
  1220.                 If (Sel < 1) Sel = nLines - 1
  1221.                 If (Special = 1 && PageName == "FAILED") DrawLemArm(Sel)
  1222.                 DispSel(Sel)
  1223.             Case Chr(13)
  1224.                 Menu = (Sel+1)/2
  1225.                 Break
  1226.             Case Chr(27)
  1227.                 Menu = 0
  1228.                 Break
  1229.         End Select
  1230.     EndIf
  1231. EndWhile
  1232.  
  1233. Endfunc
  1234.  
  1235. ;----------------------------------------------------------------------------
  1236. Procedure DispSel(Integer Seln)
  1237. AnsiPos lbFirstX,MenuFirstLine+Seln-1
  1238. BakLightBar = ScrText(lbFirstX,MenuFirstLine+Seln-1,lbLastX-lbFirstX,True)
  1239. Print "@X1F",Upper(ScrText(lbFirstX,MenuFirstLine+Seln-1,lbLastX-lbFirstX,False))
  1240. EraseCursor()
  1241. Endproc
  1242.  
  1243. ;----------------------------------------------------------------------------
  1244. Procedure EraseSel(Integer Seln)
  1245. AnsiPos lbFirstX,MenuFirstLine+Seln-1
  1246. Print "@X0F",BakLightBar
  1247. EraseCursor()
  1248. Endproc
  1249.  
  1250. ;----------------------------------------------------------------------------
  1251. Procedure EraseCursor()
  1252. AnsiPos 1,1
  1253. Color 0
  1254. Print " "
  1255. Backup 1
  1256. EndProc
  1257.  
  1258. ;----------------------------------------------------------------------------
  1259. Procedure DrawLemArm(Int Sel)
  1260. Select Case Sel
  1261.  
  1262.     Case 1
  1263.         AnsiPos 51, 10
  1264.         Print "@X0F▀▄"
  1265.         AnsiPos 51, 11
  1266.         Print "  ▀"
  1267.         AnsiPos 51, 12
  1268.         Print " "
  1269.  
  1270.     Case 3
  1271.         AnsiPos 51, 10
  1272.         Print "@X0F  "
  1273.         AnsiPos 51, 11
  1274.         Print "▀▀▀"
  1275.         AnsiPos 51, 12
  1276.         Print " "
  1277.         
  1278.     Case 5
  1279.         AnsiPos 51, 10
  1280.         Print "@X0F  "
  1281.         AnsiPos 51, 11
  1282.         Print " ▄▀"
  1283.         AnsiPos 51, 12
  1284.         Print "▀"
  1285. End Select    
  1286. Endproc        
  1287.         
  1288. ;----------------------------------------------------------------------------
  1289. Procedure Endprocedure(string stuff)
  1290. if (pageSuccess = False && writeMsg) Then
  1291.     FCreate 1, PPEPath()+"MSG."+string(PcbNode()), O_WR, S_DN
  1292.     FPutln 1, "@X0F@X02▄██▄  @X0F Hi! This is the Lemming Reporter, please note that"
  1293.     FPutln 1, "@X02▀@X0F██@X02▀ @X0F< " + Mixed(Trim(U_Name()," "))+ " paged you on "+string(date())+ " at "+string(Time())+"."
  1294.     FPutln 1, "@X02@X0F█@X01██@X0F█   @X0FHis reason for paging was : """ + Reason + """"
  1295.     FPutln 1, "@X0F▀@X01██@X0F▀   @X0FPlease... i've been nice... don't kill me!!!"
  1296.     FPutln 1, "@X0F▄@X1F▄▄@X0F▄"
  1297.     FPutLn 1, ""
  1298.     FPutLn 1, "@X0FPress (@X8CK@X0F) NOW! to Kill this boring lemming... :>"
  1299.     Fclose 1
  1300.     Message 0, "SYSOP", "LEMMING REPORTER", "HI MASTER!", "R", 0, False, False, PPEPath() + "MSG."+string(Pcbnode())
  1301.     Delete PPEPath() + "MSG."+string(Pcbnode())
  1302. Endif
  1303. cls
  1304. kbdstuff stuff
  1305. end
  1306. endproc
  1307.  
  1308. ;----------------------------------------------------------------------------
  1309. Procedure DrawFailed()
  1310.  
  1311. AnsiPos 21, 6
  1312. Print "@X0F█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
  1313. AnsiPos 21, 7
  1314. Print "@X0F█           Page Failed! =(            █"
  1315. AnsiPos 21, 8
  1316. Print "@X0F█                                      █"
  1317. AnsiPos 21, 9
  1318. Print "@X0F█  Ok, i'll try later...        @X02▄██▄   @X0F█"
  1319. AnsiPos 21, 10
  1320. Print "@X0F█                             ▀▄@X02▀@X0F██@X02▀   @X0F█"
  1321. AnsiPos 21, 11
  1322. Print "@X0F█  Too bad, i'll let a messy    ▀@X01██@X0F█   █"
  1323. AnsiPos 21, 12
  1324. Print "@X0F█                                @X01██@X0F▀   █"
  1325. AnsiPos 21, 13
  1326. Print "@X0F█  Hey! This is an emergency!   ▄@X1F▄▄@X0F▄   █"
  1327. AnsiPos 21, 14
  1328. Print "@X0F█                                      █"
  1329. AnsiPos 21, 15
  1330. Print "@X0F█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
  1331.  
  1332. endproc
  1333.  
  1334. ;----------------------------------------------------------------------------
  1335. Procedure DrawSleeping()
  1336.  
  1337. AnsiPos 14, 7
  1338. Print "@X0F█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
  1339. AnsiPos 14, 8
  1340. Print "@X0F█     Sysop is sleeping!               @X8F______    @X0F█"
  1341. AnsiPos 14, 9
  1342. Print "@X0F█                                     @X8F( Zzzz )   @X0F█"
  1343. AnsiPos 14, 10
  1344. Print "@X0F█  Good night sweet sysop...           @X8F`~~~\|    @X0F█"
  1345. AnsiPos 14, 11
  1346. Print "@X0F█                                    ▄     ▄@X02▄▄@X06█  @X0F█"
  1347. AnsiPos 14, 12
  1348. Print "@X0F█  Hopa! I'll leave a messy!    @X06█    @X0F█@X01██@X1F▄▄@X2F▀▀▀@X02█@X06█  @X0F█"
  1349. AnsiPos 14, 13
  1350. Print "@X0F█                               @X06█@X76▄▄▄▄▄▄▄▄▄▄▄▄▄@X06█  @X0F█"
  1351. AnsiPos 14, 14
  1352. Print "@X0F█  Hey! This is an emergency!   @X06▀             ▀  @X0F█"
  1353. AnsiPos 14, 15
  1354. Print "@X0F█                                                █"
  1355. AnsiPos 14, 16
  1356. Print "@X0F▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  1357.  
  1358. Endproc
  1359.  
  1360. ;----------------------------------------------------------------------------
  1361. Procedure LemFallStep(int stepNum, int x, int y)
  1362.  
  1363. Select Case StepNum
  1364.  
  1365.     Case 0
  1366.  
  1367.         AnsiPos x, y
  1368.         Print "@X0F@X02▄██▄"
  1369.         AnsiPos x, y+1
  1370.         Print "@X02▀@X0F██@X02▀"
  1371.         AnsiPos x, y+2
  1372.         Print "@X02@X0F█@X01██@X0F█"
  1373.         AnsiPos x, y+3
  1374.         Print "@X0F▀@X01██@X0F▀"
  1375.         AnsiPos x-1, y+4
  1376.         Print "@X0F ▄@X1F▄▄@X0F▄"
  1377.         
  1378.     Case 10,11,12,13,14,15,16,17,18,19,20
  1379.  
  1380.         AnsiPos x, y+(stepnum-10)
  1381.         Print "@X0F    "
  1382.         AnsiPos x, y+(stepnum-10)+1
  1383.         Print "@X0F@X02▄██▄"
  1384.         AnsiPos x, y+(stepnum-10)+2
  1385.         Print "@X02▀@X0F██@X02▀"
  1386.         AnsiPos x, y+(stepnum-10)+3
  1387.         Print "@X02@X0F█@X01██@X0F█"
  1388.         AnsiPos x, y+(stepnum-10)+4
  1389.         Print "@X0F▀@X01██@X0F▀"
  1390.         AnsiPos x, y+(stepnum-10)+5
  1391.         Print "@X0F▄@X1F▄▄@X0F▄"
  1392.         
  1393.     Case 21
  1394.  
  1395.         AnsiPos x-1, y+11
  1396.         Print "@X0F     "
  1397.         AnsiPos x-1, y+12
  1398.         Print "@X02 ▄██▄"
  1399.         AnsiPos x-1, y+13
  1400.         Print "@X02 ▀@X0F██@X02▀"
  1401.         AnsiPos x-1, y+14
  1402.         Print "@X0F █@X01█▌█@X0F█"
  1403.         AnsiPos x-1, y+15
  1404.         Print "@X0F ▀@X01█@X0C▐@X01█@X0F▀"
  1405.         AnsiPos x-1, y+16
  1406.         Print "@X0F @X0F▄@X1F▄@X0E▌@X1F▄@X0F▄"
  1407.         AnsiPos x-1, y+17
  1408.         Print "@X0E  @X0C█@X0E█@X0C"
  1409.         AnsiPos x-1, y+18
  1410.         Print "@X0E@X0C_▐@X0E██@X0C█_"
  1411.  
  1412.     Case 21
  1413.  
  1414.         AnsiPos x-2, y+12
  1415.         Print "@X0F      "
  1416.         AnsiPos x-2, y+13
  1417.         Print "@X0E  @X02▄██▄"
  1418.         AnsiPos x-2, y+14
  1419.         Print "@X0C `@X02▀@X0F██@X02▀"
  1420.         AnsiPos x-2, y+15
  1421.         Print "@X0F █@X01█@X0C▌·▐@X01█@X0F█@X0C/,"
  1422.         AnsiPos x-2, y+16
  1423.         Print "@X0C\@X0F▀@X01█@X0C▌@X0E▌@X0C■@X01█@X0F▀"
  1424.         AnsiPos x-2, y+17
  1425.         Print "@X0F ▄@X1F▄@X0C█@X0E█@X0C▌@X1F▄@X0F▄"
  1426.         AnsiPos x-2, y+18
  1427.         Print "@X0E▌@X0C_▐@X0E██@X0C█_,"
  1428.  
  1429.     Case 22
  1430.  
  1431.         AnsiPos x-2, y+11
  1432.         Print "@X0C    ·"
  1433.         AnsiPos x-2, y+12
  1434.         Print "@X0C  ` ·, ·"
  1435.         AnsiPos x-2, y+13
  1436.         Print "@X0C · \v/~"
  1437.         AnsiPos x-2, y+14
  1438.         Print "@X02  ▄█@X0C▓@X02█▄"
  1439.         AnsiPos x-2, y+15
  1440.         Print "@X0C `@X02▀@X0F█@X0C░@X0F█@X02▀"
  1441.         AnsiPos x-2, y+16
  1442.         Print "@X0F█@X01█ @X0C▌@X0E▌@X0C■ @X01█@X0F█"
  1443.         AnsiPos x-2, y+17
  1444.         Print "@X0F▀@X01█ @X0C█@X0E█@X0C▌@X01▐@X1F▐"
  1445.         AnsiPos x-2, y+18
  1446.         Print "@X1E▌@X1F▄@X0C▐@X0E██@X0C█@X1F▄@X0F▄"
  1447.  
  1448.     Case 23
  1449.  
  1450.         AnsiPos x+2, y+11
  1451.         Print " "
  1452.         AnsiPos x, y+12
  1453.         Print "      "
  1454.         AnsiPos x-3, y+13
  1455.         Print "@X0C`     ,        ·"
  1456.         AnsiPos x-4, y+14
  1457.         Print "@X0C`  ·     ·  `"
  1458.         AnsiPos x-4, y+15
  1459.         Print "@X0C   `@X02▄█@X0C▓@X02█▄"
  1460.         AnsiPos x-4, y+16
  1461.         Print "@X02 @X0C▌@X0F█@X01█@X02▀@X0F█@X0C█@X0F█@X02▀@X01█@X0F█@X0E▌  @X0C`"
  1462.         AnsiPos x-4, y+17
  1463.         Print "@X0E▐@X0C█@X0F▀@X01█@X0C▌█@X0E█@X0C▌@X01▐@X1F▐@X0C█"
  1464.         AnsiPos x-4, y+18
  1465.         Print "@X0E██@X1E▌@X1F▄@X0C██@X0E█@X0C█@X1F▄@X0F▄"
  1466.  
  1467.     Case 24
  1468.  
  1469.         AnsiPos x-3, y+13
  1470.         Print "                "
  1471.         AnsiPos x-4, y+14
  1472.         Print "             "
  1473.         AnsiPos x-1, y+15
  1474.         Print "      "
  1475.         AnsiPos x-3, y+16
  1476.         Print "@X0C▌@X0F█@X01█@X02▄█@X0C█@X02█▄@X01█@X0F█@X0C▌    ▌    ▌"
  1477.         AnsiPos x-3, y+17
  1478.         Print "@X0C█@X0F▀@X01█@X2C▄@X0F█@X0E█@X0F█@X2C▄@X1F▐@X0C█@X0E█   @X0C▐"
  1479.         AnsiPos x-3, y+18
  1480.         Print "█@X1E▌@X1F▄@X0C██@X0E█@X0C█@X1F▄@X0F▄"
  1481.         
  1482.     Case 25
  1483.     
  1484.         PageFailed = True
  1485.  
  1486.     End Select
  1487.  
  1488. Endproc
  1489.  
  1490. ;----------------------------------------------------------------------------
  1491. Procedure Flash()
  1492. Select Case FlashMethod
  1493.     Case 1
  1494.         DoIntr 10h, 1010h, 0, 3F3Fh, 3F00h, 0, 0, 0, 0, 0
  1495.     Case 2
  1496.         Dointr 10h, 0B00h, 15, 0, 0, 0, 0, 0, 0, 0
  1497. End Select
  1498. Endproc
  1499.  
  1500. ;----------------------------------------------------------------------------
  1501. Procedure FlashOff()
  1502. Select Case FlashMethod
  1503.     Case 1
  1504.         DoIntr 10h, 1010h, 0, 0, 0, 0, 0, 0, 0, 0
  1505.     Case 2
  1506.         Dointr 10h, 0B00h, 0, 0, 0, 0, 0, 0, 0, 0
  1507. End Select
  1508. Endproc
  1509.  
  1510. ;----------------------------------------------------------------------------
  1511. Procedure Flash2()
  1512. Select Case FlashMethod
  1513.     Case 1
  1514.         DoIntr 10h, 1010h, 0, 0, 3F00h, 0, 0, 0, 0, 0
  1515.     Case 2
  1516.         Dointr 10h, 0B00h, 4, 0, 0, 0, 0, 0, 0, 0
  1517. End Select
  1518. Endproc
  1519.  
  1520. ;----------------------------------------------------------------------------
  1521. Function AskPwd() Boolean
  1522.  
  1523. String Bak(2)
  1524.  
  1525. If (NameIsIn("PAGER.VIP")) Then
  1526.     AskPwd = True
  1527. Else
  1528.  
  1529.     Bak(0) = Scrtext(26, 17, 28, True)
  1530.     Bak(1) = Scrtext(26, 18, 28, True)
  1531.     Bak(2) = Scrtext(26, 19, 28, True)
  1532.     
  1533.     AnsiPos 26,17
  1534.     Print "@X0F█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
  1535.     AnsiPos 26,18
  1536.     Print "@X0F█ PWD:                     █"
  1537.     AnsiPos 26,19
  1538.     Print "@X0F█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
  1539.     
  1540.     If (Upper(InputLine(33, 18, 19, "", Mask_Ascii() + Password, False, True)) = Upper(Password)) Then
  1541.         AskPwd = True
  1542.     Else
  1543.         AnsiPos 26, 18
  1544.         If (InputLineControl = 1) Then
  1545.             Print "@X0F█ PWD: @X08*@X04*@X0C*ASK TO SYSOP!*@X04*@X08*@X0F █"
  1546.         Else
  1547.             Print "@X0F█ PWD: @X08*@X04*@X0C*BAD PASSWORD!*@X04*@X08*@X0F █"
  1548.         Endif
  1549.         Delay 8
  1550.         AskPwd = False
  1551.     Endif
  1552.     
  1553.     AnsiPos 26,17
  1554.     Print Bak(0)
  1555.     AnsiPos 26,18
  1556.     Print Bak(1)
  1557.     AnsiPos 26,19
  1558.     Print Bak(2)
  1559. Endif
  1560.  
  1561. Endfunc
  1562.  
  1563. ;----------------------------------------------------------------------------
  1564. Function InputLine(Integer Col, Integer Row, Integer SLen, String Def, String Chars, Boolean Up, Boolean Hide) String
  1565.  
  1566. Integer il_L
  1567. String il_Line
  1568. String k
  1569.  
  1570. InputLineControl = 0
  1571. AnsiPos Col, Row
  1572.  
  1573. Print "@X0B"+Def
  1574. il_L = Len(Def)
  1575. il_Line = Def
  1576.  
  1577. While (True) Do
  1578.     k = Inkey()
  1579.     If (Up) k = Upper(k)
  1580.     Select Case k
  1581.     
  1582.         Case Chr(27)
  1583.             InputLine = il_Line;""
  1584.             InputLineControl = 1
  1585.             Break
  1586.     
  1587.         Case Chr(13)
  1588.             InputLine = il_Line
  1589.             Break
  1590.             
  1591.         Case Chr(8)
  1592.             If (il_Line <> "") Then
  1593.                 il_Line = Left(il_Line,len(il_Line)-1)
  1594.                 Backup 1
  1595.                 Print "@X0F "
  1596.                 Backup 1
  1597.             Endif
  1598.         
  1599.         Case Else
  1600.             If (Len(il_Line) < SLen & Len(k) = 1 & Asc(k) > 31) Then
  1601.                 If (InStr(Chars, k)) Then
  1602.                     If (Right(Il_Line,1) = " ") k = Upper(K)
  1603.                     il_Line = il_Line + k
  1604.                     If (Hide) Then
  1605.                         Print "@X0B*"
  1606.                     Else
  1607.                         Print "@X0B"+k
  1608.                     Endif
  1609.                 Endif
  1610.             Endif
  1611.     
  1612.     End Select
  1613. Endwhile
  1614.  
  1615. EndFunc
  1616.  
  1617. ;----------------------------------------------------------------------------
  1618. Procedure DispBackgrnd()
  1619.  
  1620. PrintLn "@CLS@@X07@X0F   @X0C▄@X04▄        @X0C▄@X04▄   @X0C▄@X04▄       @X0C▄@X04▄    ▓▒        @X0C▄@X04▄      @X0C▄@X04▄           @X0C▄@X04▄   @X0C▄@X04▄   @X0C▄@X04▄"
  1621. PrintLn "@X04  @X0C▐@X4C▒░ @X0F   @X4C░@X04▌ @X0C▐@X4C▒░ @X0F @X0C▐@X4C▒░ @X0F     @X0C▐@X4C▒░ @X0F    @X04░       @X0C▐@X4C▒░ @X04▀▄▄ @X0C▐@X4C▒░ @X04▄ @X0C▄      ▐@X4C▒░ @X0F @X0C▐@X4C▒░ @X0F @X0C▐@X4C▒░ @X07"
  1622. PrintLn "@X0F  @X4C▒░ @X0F  @X0C▄@X4C░@X04▀  @X4C▒░ @X0F  @X4C▒░ @X0F      @X4C▒░ @X0F             @X4C▒░ @X0F   @X04▀▌@X4C▒░ @X04 ▐▀@X4C▒@X0F      @X4C▒░ @X0F  @X4C▒░ @X0F  @X4C▒░ @X07"
  1623. PrintLn "@X0F  @X0C▐@X4C░@X0F @X0C■@X4C▒░@X0F    @X0C▐@X4C░@X0F   @X0C▐@X4C░@X0F     @X0C▄ ▐@X4C░@X0F     @X0C▄        ▐@X4C░@X0F @X04■▀▀  @X0C▐@X4C░@X0F  @X04▀ @X4C░@X0F      @X0C▐@X4C░@X0F   @X0C▐@X4C░@X0F   @X0C▐@X4C░@X07"
  1624. PrintLn "@X0F   @X4C░@X04▌  @X0C▀@X4C░░@X0F   @X4C░@X04▌   @X4C░@X04▌  ▄@X4C░▒@X0C▌ @X4C░@X04▌  ▄@X4C░▒@X0C▌        @X4C░@X04▌  ▄@X4C░▒@X0F @X4C░@X04▌  ▐▌       @X4C░@X04▌   @X4C░@X04▌   @X4C░@X04▌"
  1625. PrintLn "@X04    @X0C▀▄   @X4C▒░@X0F   @X0C▀▄   ▀▄@X4C░@X04▀▀@X0C▀   ▀▄@X4C░@X04▀▀@X0C▀@X04░         @X0C▀▄@X4C @X04▀@X0C▀   ▀▄ @X04▀         @X0C▄    ▄    ▄"
  1626. PrintLn "@X0C      @X04█       █        ░        ░ █             █     ▓           ░  ▒    ▓ Ms"
  1627. PrintLn "@X04     ▒▓       ░▓     ░▒           ▓            ▓      ▒▓         ▓   ▓    ▒"
  1628. PrintLn "@X04      ▒         ▒      ░         ▒            ▒       ░▒         ▒    ▒   ░"
  1629. PrintLn "@X04     ░         ░                 ░            ░        ░         ░    ░"
  1630. PrintLn "@X04      ░                           ░           ░                             ░"
  1631. PrintLn "@X04       ░                          ░           ░                  ░          ░"
  1632. PrintLn "@X04       ░                          ░                                        ░"
  1633. PrintLn "@X04       ░ ░"
  1634. PrintLn "@X06▓█▄      @X04░                                                                  @X06▄█▓"
  1635. PrintLn "@X06████▄                                                                     ▄████"
  1636. PrintLn "@X06█▓█▓██                                                                   ██▓█▓█"
  1637. PrintLn "@X06██▒████                                                                 ████▒██"
  1638. PrintLn "@X06▓▒█▓██▓█                                                               █▓██▓█▒▓"
  1639. PrintLn "@X06█▓█▓▓███▄                                                             ▄███▓▓█▓█"
  1640. PrintLn "@X06████▓▓▒██                                                             ██▒▓▓████"
  1641. Print "@X06▓██▓███▓██▒▓█▓▒████▒▓█▓▓▓▓▒▒▓▓▓▓▓▓▓█▓█▓▒▓▓████▓▓██░▓▓▓▓▓▒░▓█▓████▓▒▒▓██▓███▓██▓"
  1642.  
  1643. Endproc
  1644.  
  1645. ;----------------------------------------------------------------------------
  1646. Procedure DispBackgrnd2()
  1647. PrintLn "@CLS@@X0F                                                          @X0C▓▀▄ ▒█▀ ▓▀█ ▒▀▄"
  1648. PrintLn "@X0C                                                          █▄▀ ▓▄▄ █▀▒ ▓▄▀"
  1649. PrintLn ""
  1650. PrintLn "@X0C                                                                 ▓█▀ ▓▀▄ █▀▄ ▓"
  1651. PrintLn "@X0C                                                                 ▓▄▄ ▒ ▓ ▓▄▀ ▄"
  1652. PrintLn ""
  1653. PrintLn "@X0C                                                                         ███"
  1654. PrintLn "@X0C                                                                         ▐█▌"
  1655. PrintLn "@X0C                                                                        ▄▄█▄▄"
  1656. PrintLn "@X06▒▓█▓▒████▒▓▒▓▓▓█▒▒▓█▓▓▓▓▓█▓█▓▒▓▓████▓▓██▓░▓▓▓▓▓░▓█▓█▓▒▒                  @X0C▀█▀"
  1657. PrintLn "@X06████▓▒██████████▓█████▒█▓▓████▓███████████████████████▒"
  1658. PrintLn "@X06▒████████████▒▓██████████▒█████▒██████████████████████▓"
  1659. PrintLn "@X06▓███████████████████████████████████▒████▓██████▒█▓███▓"
  1660. PrintLn "@X06▓█▓▒██████▓▒█▓███▒▓█▒███████████████████▒████████▓████▓"
  1661. PrintLn "@X06████▒███████▒██▒██▓█████████████▒█████▓█████████▒██████"
  1662. PrintLn "@X06████▓▒████████░▓█▓█████████▒▒███████████████████████▓█▒"
  1663. PrintLn "@X06▓█▒███████▓▒█░████████████▒█▒▓░██████████████████████▒░"
  1664. PrintLn "@X06████▒███▓▒██████▒█████▒█@X6F▄▄@X0F█▀▀█@X6F▄▄@X06▓███▒░██████▓███▓▒████▒"
  1665. PrintLn "@X06███████▒▓████▓█▓████@X6F▄▄@X0F█▀▀      ▀▀█@X6F▄▄@X06█▓████████████████▒"
  1666. PrintLn "@X06▓███▒██████▓███▒██@X6F▄@X0F█▀              ▀█@X6F▄@X06█▓████▒█░▒██████▓"
  1667. PrintLn "@X06█▓████████████▓█@X6F▄@X0F█▀                  ▀█@X6F▄@X06████▓██████████  @X0E▌    ▌    ▌    ▌    ▌"
  1668. PrintLn "@X06█▒██████████▒██@X0F█@X2F▀@X02▄                    ▄@X2F▀@X0F█@X06████████▒████▒ @X0E▐█   ▐█   ▐█   ▐█   ▐█"
  1669. Print "@X06▒█████▓█████▓█@X0F█@X2F▀@X02██@X01▒@X09▒▓▒▓█▓▒▒▓█▒▓█▓▒█▓▒@X01▒@X02██@X2F▀@X0F█@X06██████▓██████ @X0E██▌  ██▌  ██▌  ██▌  ██▌"
  1670. Endproc
  1671.  
  1672.  
  1673.